//----------------------------------------------------------------------------
// Includes
//----------------------------------------------------------------------------
Ti.include('include.js');
Ti.include('db.js');

//----------------------------------------------------------------------------
// Variables
//----------------------------------------------------------------------------
var selectedHHreceptDT;
//datum herhaalrecept, key
var imgMedicijn;
//genomen afbeelding van medicijn, als bijlage in genereerde mail met aanvraag
var isImage = false;
//indicatie of afbeelding moet worden opgenomen in aanvraag

//----------------------------------------------------------------------------
// Window
//----------------------------------------------------------------------------
var winHHRecept = Titanium.UI.currentWindow;

winHHRecept.addEventListener('focus', function(e) {
   log("Window 'Herhaalrecept' actief");
});

// button 'Historie'
var btnHistorie = Titanium.UI.createButton({
   title : 'Historie'
});
btnHistorie.addEventListener('click', showViewHistorie);
winHHRecept.leftNavButton = btnHistorie;

// button 'Bellen' -> alleen voor iphone
if (isIphone()) {
   var btnHHReceptBellen = Titanium.UI.createButton({
      title : 'Bellen'
   });
   btnHHReceptBellen.addEventListener('click', function(e) {
      hhreceptBellenDialog.show();
   });
   var hhreceptBellenDialog = Titanium.UI.createAlertDialog({
      title : 'Voor herhaalrecepten kunt u ook direct de praktijk bellen. Kies vervolgens optie 2.\nWilt u dit nu doen?',
      buttonNames : ['OK', 'Annuleren'],
      cancel : 1
   });
   hhreceptBellenDialog.addEventListener('click', function(event) {
      if (event.index == 0) {
         Titanium.Platform.openURL('tel:0433614444');
      }
   });
   winHHRecept.rightNavButton = btnHHReceptBellen;
}

function showViewHistorie() {
   winHHRecept.remove(viewHHRecepten);
   winHHRecept.add(viewHistorie);
   winHHRecept.leftNavButton = btnTerug;
   winHHRecept.rightNavButton = btnHistorieWissen;
   //
   populateTableHistorie();
}

//----------------------------------------------------------------------------
// View 'Herhaalrecepten'
//----------------------------------------------------------------------------
var viewHHRecepten = Titanium.UI.createView({
   width : '100%',
   height : '100%'
})

var scrollViewHHRecepten = Ti.UI.createScrollView({
   contentWidth : 'auto',
   contentHeight : 'auto',
   showVerticalScrollIndicator : true,
   showHorizontalScrollIndicator : true
});

//Header
var viewHHReceptenHeader = Titanium.UI.createView({
   top : '10',
   backgroundColor : donkerblauw,
   width : '90%',
   height : '35',
   borderRadius : '5',
   borderColor : donkerblauw,
});
viewHHReceptenHeader.add(Titanium.UI.createLabel({
   textAlign : Ti.UI.TEXTALIGNMENTLEFT,
   font : {
      fontSize : 12,
      fontWeight : 'bold',
      fontFamily : customFont
   },
   color : wit,
   top : '5',
   left : '5',
   right : '5',
   text : 'Herhaalrecept aanvragen (alles invullen aub.)'
}));

//Content
var viewHHReceptenContent = Titanium.UI.createView({
   backgroundColor : wit,
   top : '35',
   width : '90%',
   height : '380',
   borderRadius : '5',
   borderColor : donkerblauw
})
viewHHReceptenContent.addEventListener('swipe', function(e) {
   log("Swipe naar: " + e.direction);
   if (e.direction === "right" || e.direction === "left") {
      clearTextfieldsDialog.show();
   }
});

//Contact gegevens
viewHHReceptenContent.add(Titanium.UI.createLabel({
   textAlign : Ti.UI.TEXTALIGNMENTLEFT,
   font : {
      fontSize : 12,
      fontWeight : 'bold',
      fontFamily : customFont
   },
   color : donkerblauw,
   top : '5',
   left : '10',
   text : 'Contact gegevens'
}));

var tfNaam = Ti.UI.createTextField({
   top : '25',
   left : '10',
   width : '90%',
   height : '30',
   font : {
      fontSize : 16,
      fontWeight : 'normal'
   },
   hintText : 'Achternaam',
   color : donkerblauw,
   borderRadius : '2',
   borderColor : donkerblauw,
   borderStyle : Titanium.UI.INPUTBORDERSTYLELINE,
   backgroundImage : 'images/backgrounds/tf_background01.png'
});

var tfInitialen = Ti.UI.createTextField({
   top : '60',
   left : '10',
   width : '80',
   height : '30',
   font : {
      fontSize : 16,
      fontWeight : 'normal'
   },
   hintText : 'Voorl.',
   color : donkerblauw,
   borderRadius : '2',
   borderColor : donkerblauw,
   borderStyle : Titanium.UI.INPUTBORDERSTYLELINE,
   backgroundImage : 'images/backgrounds/tf_background01.png'
});

var btnSelectDate = Ti.UI.createButton({
   width : '24',
   height : '24',
   backgroundImage : 'images/icons/search32.png'
});
btnSelectDate.addEventListener('click', function(e) {
   winHHRecept.add(viewDatePicker);
});

var tfGebDatum = Ti.UI.createTextField({
   top : '60',
   left : '95',
   width : '130',
   height : '30',
   font : {
      fontSize : 16,
      fontWeight : 'normal'
   },
   hintText : 'Geb datum',
   color : donkerblauw,
   borderRadius : '2',
   borderColor : donkerblauw,
   borderStyle : Titanium.UI.INPUTBORDERSTYLELINE,
   backgroundImage : 'images/backgrounds/tf_background01.png',
   rightButton : btnSelectDate,
   rightButtonMode : Titanium.UI.INPUTBUTTONMODEALWAYS
});

var tfStraat = Ti.UI.createTextField({
   top : '95',
   left : '10',
   width : '90%',
   height : '30',
   font : {
      fontSize : 16,
      fontWeight : 'normal'
   },
   hintText : 'Straat+huisnr',
   color : donkerblauw,
   borderRadius : '2',
   borderColor : donkerblauw,
   borderStyle : Titanium.UI.INPUTBORDERSTYLELINE,
   backgroundImage : 'images/backgrounds/tf_background01.png'
});

var tfPostcode = Ti.UI.createTextField({
   top : '130',
   left : '10',
   width : '80',
   height : '30',
   font : {
      fontSize : 16,
      fontWeight : 'normal'
   },
   hintText : 'Postcode',
   color : donkerblauw,
   borderRadius : '2',
   borderColor : donkerblauw,
   borderStyle : Titanium.UI.INPUTBORDERSTYLELINE,
   backgroundImage : 'images/backgrounds/tf_background01.png'
});

var tfPlaats = Ti.UI.createTextField({
   top : '130',
   left : '95',
   width : '60%',
   height : '30',
   font : {
      fontSize : 16,
      fontWeight : 'normal'
   },
   hintText : 'Plaats',
   color : donkerblauw,
   borderRadius : '2',
   borderColor : donkerblauw,
   borderStyle : Titanium.UI.INPUTBORDERSTYLELINE,
   backgroundImage : 'images/backgrounds/tf_background01.png'
});

var tfTelefoon = Ti.UI.createTextField({
   top : '165',
   left : '10',
   width : '140',
   height : '30',
   font : {
      fontSize : 16,
      fontWeight : 'normal'
   },
   hintText : 'Telefoon',
   color : donkerblauw,
   borderRadius : '2',
   borderColor : donkerblauw,
   borderStyle : Titanium.UI.INPUTBORDERSTYLELINE,
   backgroundImage : 'images/backgrounds/tf_background01.png'
});

viewHHReceptenContent.add(Titanium.UI.createLabel({
   textAlign : Ti.UI.TEXTALIGNMENTLEFT,
   font : {
      fontSize : 12,
      fontWeight : 'bold',
      fontFamily : customFont
   },
   color : donkerblauw,
   top : '210',
   left : '10',
   text : 'Herhaalrecept'
}));

var btnMedicijnCapture = Ti.UI.createButton({
   width : '24',
   height : '24',
   backgroundImage : 'images/icons/camera.png'
});
btnMedicijnCapture.addEventListener('click', function(e) {
   medicijnCaptureDialog.show();
});

var medicijnCaptureDialog = Titanium.UI.createOptionDialog({
   title : 'Afbeelding toevoegen van:',
   options : ['Camera', 'Filmrol', 'Annuleren'],
   cancel : 2
});
medicijnCaptureDialog.addEventListener('click', function(e) {
   if (e.index == 0) {
      log("Camera gekozen");
      captureImageFromCamera();
   } else if (e.index == 1) {
      log("Filmrol gekozen");
      captureImageFromGallery();
   }
   //Annuleren
   else {
      log("Annuleren gekozen");
   }
});

var tfMedicijn = Ti.UI.createTextField({
   top : '230',
   left : '10',
   width : '90%',
   height : '30',
   font : {
      fontSize : 16,
      fontWeight : 'normal'
   },
   hintText : 'Medicijn',
   color : donkerblauw,
   borderRadius : '2',
   borderColor : donkerblauw,
   borderStyle : Titanium.UI.INPUTBORDERSTYLELINE,
   backgroundImage : 'images/backgrounds/tf_background01.png',
   rightButton : btnMedicijnCapture,
   rightButtonMode : Titanium.UI.INPUTBUTTONMODEALWAYS
});

var tfMg = Ti.UI.createTextField({
   top : '265',
   left : '10',
   width : '80',
   height : '30',
   font : {
      fontSize : 16,
      fontWeight : 'normal'
   },
   hintText : 'Mg',
   color : donkerblauw,
   borderRadius : '2',
   borderColor : donkerblauw,
   borderStyle : Titanium.UI.INPUTBORDERSTYLELINE,
   backgroundImage : 'images/backgrounds/tf_background01.png'
});

var tfAantal = Ti.UI.createTextField({
   top : '265',
   left : '95',
   width : '120',
   height : '30',
   font : {
      fontSize : 16,
      fontWeight : 'normal'
   },
   hintText : 'Aantal',
   color : donkerblauw,
   borderRadius : '2',
   borderColor : donkerblauw,
   borderStyle : Titanium.UI.INPUTBORDERSTYLELINE,
   backgroundImage : 'images/backgrounds/tf_background01.png'
});

var tfGebruik = Ti.UI.createTextField({
   top : '300',
   left : '10',
   width : '90%',
   height : '30',
   font : {
      fontSize : 16,
      fontWeight : 'normal'
   },
   hintText : 'Gebruik',
   color : donkerblauw,
   borderRadius : '2',
   borderColor : donkerblauw,
   borderStyle : Titanium.UI.INPUTBORDERSTYLELINE,
   backgroundImage : 'images/backgrounds/tf_background01.png'
});

var btnSelectApotheek = Ti.UI.createButton({
   width : '24',
   height : '24',
   backgroundImage : 'images/icons/search32.png'
});
btnSelectApotheek.addEventListener('click', function(e) {
   winHHRecept.add(viewApotheek);
});

var tfApotheek = Ti.UI.createTextField({
   top : '335',
   left : '10',
   width : '90%',
   height : '30',
   font : {
      fontSize : 16,
      fontWeight : 'normal'
   },
   hintText : 'Apotheek',
   color : donkerblauw,
   borderRadius : '2',
   borderColor : donkerblauw,
   borderStyle : Titanium.UI.INPUTBORDERSTYLELINE,
   backgroundImage : 'images/backgrounds/tf_background01.png',
   rightButton : btnSelectApotheek,
   rightButtonMode : Titanium.UI.INPUTBUTTONMODEALWAYS
});

//Buttons
var viewButtons = Titanium.UI.createView({
   color : 'transparent',
   top : '420',
   width : '90%',
   height : '60'
});

var btnReset = Ti.UI.createButton({
   top : '10',
   left : '10',
   width : '100',
   height : '30',
   font : {
      fontSize : 14,
      fontWeight : 'bold',
      fontFamily : customFont
   },
   color : wit,
   title : 'Herstel',
   backgroundImage : 'images/backgrounds/btn_background01.png',
   borderRadius : '5',
   borderColor : borderblauw
});
btnReset.addEventListener('click', function(e) {
   clearTextfieldsDialog.show();
});

var btnAanvragen = Ti.UI.createButton({
   top : '10',
   right : '10',
   width : '100',
   height : '30',
   font : {
      fontSize : 14,
      fontWeight : 'bold',
      fontFamily : customFont
   },
   color : wit,
   title : 'Verzenden',
   backgroundImage : 'images/backgrounds/btn_background01.png',
   borderRadius : '5',
   borderColor : borderblauw
});
btnAanvragen.addEventListener('click', function(e) {
   sendDialog.show();
});

//Dialogs
var clearTextfieldsDialog = Titanium.UI.createAlertDialog({
   title : 'Invoer wissen',
   message : 'Alle ingevulde velden wissen?',
   buttonNames : ['OK', 'Annuleren'],
   cancel : 1
});
clearTextfieldsDialog.addEventListener('click', function(event) {
   if (event.index == 0) {
      clearTextFields();
   }
});

var sendDialog = Titanium.UI.createAlertDialog({
   title : 'Herhaalrecept aanvraag',
   message : 'Wilt u de aanvraag verzenden?',
   buttonNames : ['OK', 'Annuleren'],
   cancel : 1
});
sendDialog.addEventListener('click', function(event) {
   if (event.index == 0) {
      processHHRecept();
   }
});

//UI componenten toevoegen
viewHHReceptenContent.add(tfNaam, tfInitialen, tfGebDatum, tfStraat, tfPostcode, tfPlaats, tfTelefoon);
viewHHReceptenContent.add(tfMedicijn, tfMg, tfAantal, tfGebruik, tfApotheek);
viewButtons.add(btnReset, btnAanvragen);

scrollViewHHRecepten.add(viewHHReceptenHeader, viewHHReceptenContent, viewButtons);
viewHHRecepten.add(scrollViewHHRecepten);
winHHRecept.add(viewHHRecepten);

//Functions
function captureImageFromCamera() {
   Titanium.Media.showCamera({
      error : function(error) {
         var a = Titanium.UI.createAlertDialog({
            title : 'Fout'
         });
         if (error.code == Titanium.Media.NO_CAMERA) {
            a.setMessage("Dit toestel beschikt niet over een camera");
         } else {
            a.setMessage("Er is een fout opgetreden: " + error.code);
         }
         a.show();
      },
      cancel : function() {
         log("Camera annuleren");
      },
      success : function(event) {
         log("Foto is genomen en wordt verwerkt");
         captureImageFromEvent(event);
      },
      allowImageEditing : true,
      saveToPhotoGallery : true
   });
}

function captureImageFromGallery() {
   Titanium.Media.openPhotoGallery({
      success : function(event) {
         log("Afbeelding geselecteerd uit filmrol");
         captureImageFromEvent(event);
      },
      cancel : function() {
         log("Filmrol annuleren");
      }
   });
}

function captureImageFromEvent(event) {
   var image = event.media;
   if (event.mediaType == Ti.Media.MEDIA_TYPE_PHOTO) {
      var imageFile = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory, 'snapshot.png');
      imageFile.write(event.media);
      log(event.media);
      imgMedicijn = imageFile;
      tfMedicijn.value = "[Afbeelding]";
      isImage = true;
   }
}

function processHHRecept() {
   var mailContent = '' + 'Betreft: aanvraag herhaalrecept, verzonden via Heerderhof app\n\n' + '[Contact gegevens]\n' + 'Achternaam: ' + tfNaam.value + "\n" + 'Initialen: ' + tfInitialen.value + "\n" + 'Geboorte datum: ' + tfGebDatum.value + "\n" + 'Adres: ' + tfStraat.value + "\n" + 'Postcode: ' + tfPostcode.value + "\n" + 'Woonplaats: ' + tfPlaats.value + "\n" + 'Telefoon: ' + tfTelefoon.value + "\n" + '\n' + '[Herhaalrecept]\n' + 'Medicijn: ' + tfMedicijn.value + "\n" + 'Mg: ' + tfMg.value + "\n" + 'Aantal: ' + tfAantal.value + "\n" + 'Gebruik: ' + tfGebruik.value + "\n" + '\n' + 'Gewenste apotheek: ' + tfApotheek.value + "\n" + '\n' + 'Neem contact op met patient indien niet alle gegevens zijn ingevuld of er onduidelijkheden zijn.\n';
   if (isImage) {
      mailContent = mailContent + "\n\nBijlage: afbeelding medicijn";
   }

   var emailDialog = Ti.UI.createEmailDialog();
   emailDialog.subject = "Herhaalrecept " + tfInitialen.value + " " + tfNaam.value;
   emailDialog.toRecipients = ['info@heerderhof.nl'];
   emailDialog.messageBody = mailContent;
   emailDialog.html = false;
   if (isImage) {
      log("Afbeelding toevoegen als bijlage");
      emailDialog.addAttachment(imgMedicijn);
   }

   emailDialog.open();

   emailDialog.addEventListener('complete', function(e) {
      if (e.result == emailDialog.SENT) {
         log("Bericht verzonden");
         storeHHRecept();
         clearTextFields();
      } else if (e.result == emailDialog.CANCELLED) {
         log("Bericht versturen geannuleerd");
      } else {
         log("Onbekende fout opgetreden: " + e);
      }
   });
}

function storeHHRecept() {
   hhreceptendb = Ti.Database.open('hhrecepten');
   if (isImage) {
      log('Herhaalrecept met afbeelding wordt opgeslagen in database');
      hhreceptendb.execute('INSERT INTO hhrecepten (date_time, name, initials, bdate, street, postcode, place, phone, medicine, dose, number, usage, pharmacy, image) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', getDate(), tfNaam.value, tfInitialen.value, tfGebDatum.value, tfStraat.value, tfPostcode.value, tfPlaats.value, tfTelefoon.value, tfMedicijn.value, tfMg.value, tfAantal.value, tfGebruik.value, tfApotheek.value, imgMedicijn.nativePath);
   } else {
      log('Herhaalrecept zonder afbeelding wordt opgeslagen in database');
      hhreceptendb.execute('INSERT INTO hhrecepten (date_time, name, initials, bdate, street, postcode, place, phone, medicine, dose, number, usage, pharmacy) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', getDate(), tfNaam.value, tfInitialen.value, tfGebDatum.value, tfStraat.value, tfPostcode.value, tfPlaats.value, tfTelefoon.value, tfMedicijn.value, tfMg.value, tfAantal.value, tfGebruik.value, tfApotheek.value);
   }
   hhreceptendb.close();
}

function clearTextFields() {
   log("Invoervelden wissen");
   tfNaam.value = '';
   tfInitialen.value = '';
   tfGebDatum.value = '';
   tfStraat.value = '';
   tfPostcode.value = '';
   tfPlaats.value = '';
   tfTelefoon.value = '';
   tfMedicijn.value = '';
   tfMg.value = '';
   tfAantal.value = '';
   tfGebruik.value = '';
   tfApotheek.value = '';
   //
   if (isImage) {
      log("Gekozen afbeelding verwijderen");
      isImage = false;
      imgMedicijn = null;
   }
}

//----------------------------------------------------------------------------
// View 'Datum selecteren'
//----------------------------------------------------------------------------
var viewDatePicker = Titanium.UI.createView({
   backgroundColor : 'transparent',
   width : '100%',
   height : '100%'
});

var selectedDate = new Date();

//header
if (isIpad()) {
   var viewDatePickerHeader = Titanium.UI.createView({
      top : '110',
      backgroundColor : donkergroen,
      width : '300',
      height : '35',
      borderRadius : '5',
      borderColor : donkergroen
   });
} else if (isIphone()) {
   var viewDatePickerHeader = Titanium.UI.createView({
      top : '15',
      backgroundColor : donkergroen,
      width : '300',
      height : '35',
      borderRadius : '5',
      borderColor : donkergroen
   });
}
viewDatePickerHeader.add(Titanium.UI.createLabel({
   textAlign : Ti.UI.TEXT_ALIGNMENT_LEFT,
   font : {
      fontSize : 12,
      fontWeight : 'bold',
      fontFamily : customFont
   },
   shadowColor : bordergroen,
   shadowOffset : {
      x : 0,
      y : -1
   },
   color : wit,
   top : '5',
   left : '5',
   right : '5',
   text : 'Selecteer geboortedatum'
}));

var btnPickDate = Titanium.UI.createButton({
   top : '1',
   right : '1',
   width : '100',
   height : '25',
   font : {
      fontSize : 14,
      fontWeight : 'bold',
      fontFamily : customFont
   },
   color : wit,
   title : 'Selecteren',
   backgroundImage : 'images/backgrounds/btn_background04.png',
   borderRadius : '5',
   borderColor : bordergroen
})
btnPickDate.addEventListener('click', function(e) {
   var d = selectedDate.getDate() + "-" + (selectedDate.getMonth() + 1) + "-" + selectedDate.getFullYear();
   log("Geselecteerde datum: " + d);
   tfGebDatum.value = d;
   winHHRecept.remove(viewDatePicker);
});

viewDatePickerHeader.add(btnPickDate);

//content
if (isIphone()) {
   var viewDatePickerContent = Titanium.UI.createView({
      backgroundColor : wit,
      top : '40',
      width : '300',
      height : '215',
      borderRadius : '5',
      borderColor : donkergroen
   });
} else if (isIpad()) {
   var viewDatePickerContent = Titanium.UI.createView({
      backgroundColor : wit,
      top : '135',
      width : '300',
      height : '215',
      borderRadius : '5',
      borderColor : donkergroen
   });
}

var aDate = new Date();
var today = new Date(aDate.getFullYear(), aDate.getMonth(), aDate.getDate());
var datePicker = Ti.UI.createPicker({
   top : '0',
   width : '100%',
   type : Ti.UI.PICKER_TYPE_DATE,
   minDate : new Date(1900, 0, 1),
   maxDate : today,
   value : today
});
datePicker.addEventListener('change', function(e) {
   selectedDate = e.value;
});

datePicker.selectionIndicator = true;
viewDatePickerContent.add(datePicker);
viewDatePicker.add(viewDatePickerHeader, viewDatePickerContent);

//----------------------------------------------------------------------------
// View 'Apotheek selecteren'
//----------------------------------------------------------------------------
var selectedApotheek = '';

var viewApotheek = Titanium.UI.createView({
   backgroundColor : 'transparent',
   width : '100%',
   height : '100%'
});

//header
if (isIpad()) {
   var viewApotheekPickerHeader = Titanium.UI.createView({
      top : '110',
      backgroundColor : donkergroen,
      width : '400',
      height : '35',
      borderRadius : '5',
      borderColor : donkergroen
   });
} else if (isIphone()) {
   var viewApotheekPickerHeader = Titanium.UI.createView({
      top : '10',
      backgroundColor : donkergroen,
      width : '95%',
      height : '35',
      borderRadius : '5',
      borderColor : donkergroen
   });
}
viewApotheekPickerHeader.add(Titanium.UI.createLabel({
   textAlign : Ti.UI.TEXTALIGNMENTLEFT,
   font : {
      fontSize : 12,
      fontWeight : 'bold',
      fontFamily : customFont
   },
   shadowColor : bordergroen,
   shadowOffset : {
      x : 0,
      y : -1
   },
   color : wit,
   top : '5',
   left : '5',
   right : '5',
   text : 'Kies uw apotheek'
}));

var btnPickApotheek = Titanium.UI.createButton({
   top : '1',
   right : '1',
   width : '100',
   height : '25',
   font : {
      fontSize : 14,
      fontWeight : 'bold',
      fontFamily : customFont
   },
   color : wit,
   title : 'Selecteren',
   backgroundImage : 'images/backgrounds/btn_background04.png',
   borderRadius : '5',
   borderColor : bordergroen
})
btnPickApotheek.addEventListener('click', function(e) {
   selectedApotheek = pickerApotheek.getSelectedRow(0).title;
   winHHRecept.remove(viewApotheek);
   tfApotheek.value = selectedApotheek;
});

viewApotheekPickerHeader.add(btnPickApotheek);

//content
if (isIphone()) {
   var viewApotheekPickerContent = Titanium.UI.createView({
      backgroundColor : wit,
      top : '35',
      width : '95%',
      height : '215',
      borderRadius : '5',
      borderColor : donkergroen
   });
} else if (isIpad()) {
   var viewApotheekPickerContent = Titanium.UI.createView({
      backgroundColor : wit,
      top : '135',
      width : '400',
      height : '215',
      borderRadius : '5',
      borderColor : donkergroen
   });
}
var apotheken = populateApotheekPicker();
var pickerApotheek = Titanium.UI.createPicker({
   top : '0',
   width : '100%',
   useSpinner : true
});

pickerApotheek.add(apotheken);
pickerApotheek.selectionIndicator = true;
viewApotheekPickerContent.add(pickerApotheek);
viewApotheek.add(viewApotheekPickerHeader, viewApotheekPickerContent);

//Functions
function populateApotheekPicker() {
   log("Picklist apotheken vullen");
   apothekendb = Ti.Database.open('apotheken');
   var collection = [];
   var apotheekName = "";
   var row = 0;
   var apothekenRS = apothekendb.execute('SELECT name FROM apotheken');
   while (apothekenRS.isValidRow()) {
      apotheekName = apothekenRS.fieldByName('name');
      collection[row] = Ti.UI.createPickerRow({
         title : apotheekName
      });
      row++;
      apothekenRS.next();
   }
   apothekenRS.close();
   apothekendb.close();
   return collection;
}

//----------------------------------------------------------------------------
// View 'Historie'
//----------------------------------------------------------------------------
var viewHistorie = Titanium.UI.createView({
   width : '100%',
   height : '100%'
});

//Buttons
var btnTerug = Titanium.UI.createButton({
   title : 'Terug'
});
btnTerug.addEventListener('click', showHHRecepten);

var btnHistorieWissen = Titanium.UI.createButton({
   title : 'Wissen'
});
btnHistorieWissen.addEventListener('click', function(e) {
   dialogHistorieWissen.show();
});

//Dialogs
var dialogHistorieWissen = Titanium.UI.createAlertDialog({
   title : 'Historie wissen',
   message : 'Wilt u de complete historie wissen?',
   buttonNames : ['OK', 'Annuleren'],
   cancel : 1
});
dialogHistorieWissen.addEventListener('click', function(event) {
   if (event.index == 0) {
      deleteHHRecepten();
      populateTableHistorie();
   } else {
      log("Historie wissen geannuleerd");
   }
});

//Header
var viewHistorieHeader = Titanium.UI.createView({
   top : '10',
   backgroundColor : donkerblauw,
   width : '90%',
   height : '35',
   borderRadius : '5',
   borderColor : donkerblauw,
});
viewHistorieHeader.add(Titanium.UI.createLabel({
   textAlign : Ti.UI.TEXTALIGNMENTLEFT,
   font : {
      fontSize : 12,
      fontWeight : 'bold',
      fontFamily : customFont
   },
   color : wit,
   top : '5',
   left : '5',
   right : '5',
   text : 'Overzicht herhaalrecepten per datum'
}));

//Content
var viewHistorieContent = Titanium.UI.createView({
   backgroundColor : wit,
   top : '35',
   width : '90%',
   bottom : '10',
   borderRadius : '5',
   borderColor : donkerblauw
});

var tableHistorie = Ti.UI.createTableView();
populateTableHistorie();
tableHistorie.addEventListener('click', function(e) {
   selectedHHreceptDT = e.rowData.title;
   showHerhaalReceptDetails(selectedHHreceptDT);
});

// Add UI elements
viewHistorieContent.add(tableHistorie);
viewHistorie.add(viewHistorieHeader, viewHistorieContent);

//Functions
function populateTableHistorie() {
   var tableData = [];
   hhreceptendb = Ti.Database.open('hhrecepten');
   try {
      var hhreceptenRS = hhreceptendb.execute("SELECT date_time FROM hhrecepten;");
      if (hhreceptenRS.getRowCount() != 0) {
         log("tableHistorie vullen met gegevens uit tabel hhrecepten");
         while (hhreceptenRS.isValidRow()) {
            tableData.push({
               title : hhreceptenRS.fieldByName('date_time'),
               hasChild : true
            });
            hhreceptenRS.next();
         }
      } else {
         log("Tabel hhrecepten bevat geen records");
         tableHistorie.setData([]);
      }
      hhreceptenRS.close();
   } catch(e) {
      log(e);
      tableHistorie.setData([]);
   }
   hhreceptendb.close();
   log("tableview Historie bijwerken");
   tableHistorie.setData(tableData);
}

function showHHRecepten() {
   winHHRecept.remove(viewHistorie);
   winHHRecept.add(viewHHRecepten);
   winHHRecept.leftNavButton = btnHistorie;
   winHHRecept.rightNavButton = btnHHReceptBellen;
}

function showHerhaalReceptDetails(dt) {
   winHHRecept.add(viewHerhaalReceptDetails);
   winHHRecept.remove(viewHistorie);
   winHHRecept.leftNavButton = btnTerugNaarHistorie;
   winHHRecept.rightNavButton = '';
   winHHRecept.rightNavButton = null;
   winHHRecept.setTitle('Herhaalrecept details');
   //
   getHHRecept(dt);
}

function deleteHHRecepten() {
   log("Herhaalrecepten worden gewist");
   hhreceptendb = Ti.Database.open('hhrecepten');
   hhreceptendb.execute('DELETE FROM hhrecepten;');
   hhreceptendb.close();
}

//----------------------------------------------------------------------------
// View 'HerhaalReceptDetails'
//----------------------------------------------------------------------------
var viewHerhaalReceptDetails = Titanium.UI.createView({
   width : '100%',
   height : '100%'
});

var scrollViewHerhaalReceptDetails = Ti.UI.createScrollView({
   contentWidth : 'auto',
   contentHeight : 'auto',
   showVerticalScrollIndicator : true,
   showHorizontalScrollIndicator : true
});

var viewLetterhead1 = Titanium.UI.createImageView({
   top : '0',
   left : '10',
   height : '50',
   width : '75',
   image : 'images/logo/Letterhead1.png'
});
var viewLetterhead2 = Titanium.UI.createImageView({
   top : '0',
   right : '0',
   height : '50',
   width : '90',
   image : 'images/logo/Letterhead2.png'
});

var viewHerhaalReceptDetailsContent = Titanium.UI.createImageView();


//Buttons
var btnTerugNaarHistorie = Titanium.UI.createButton({
   title : 'Sluit'
});
btnTerugNaarHistorie.addEventListener('click', terugNaarHistorie);


//Add UI elements
viewHerhaalReceptDetails.add(scrollViewHerhaalReceptDetails);



//Functions
function getHHRecept(dt) {
   viewHerhaalReceptDetailsContent = Titanium.UI.createView({
      top : '10',
      borderRadius : '5',
      borderColor : donkerblauw,
      height : '500',
      backgroundColor : wit
   });
   if (isIphone()) {
      viewHerhaalReceptDetailsContent.setWidth('90%');
   } else if (isIpad()) {
      viewHerhaalReceptDetailsContent.setWidth('500');
   }

   hhreceptendb = Ti.Database.open('hhrecepten');
   var hhreceptRS = hhreceptendb.execute('SELECT * FROM hhrecepten WHERE date_time=?', dt);

   if (hhreceptRS.isValidRow()) {
      //Contactgegevens
      viewHerhaalReceptDetailsContent.add(Ti.UI.createLabel({
         top : '60',
         left : '10',
         color : donkerblauw,
         textAlign : Ti.UI.TEXTALIGNMENTLEFT,
         font : {
            fontSize : 12,
            fontWeight : 'bold',
            fontFamily : customFont
         },
         text : hhreceptRS.getFieldByName('initials') + ' ' + hhreceptRS.getFieldByName('name')
      }));
      viewHerhaalReceptDetailsContent.add(Ti.UI.createLabel({
         top : '75',
         left : '10',
         color : donkerblauw,
         textAlign : Ti.UI.TEXTALIGNMENTLEFT,
         font : {
            fontSize : 12,
            fontWeight : 'bold',
            fontFamily : customFont
         },
         text : hhreceptRS.getFieldByName('bdate')
      }));
      viewHerhaalReceptDetailsContent.add(Ti.UI.createLabel({
         top : '90',
         left : '10',
         color : donkerblauw,
         textAlign : Ti.UI.TEXTALIGNMENTLEFT,
         font : {
            fontSize : 12,
            fontWeight : 'bold',
            fontFamily : customFont
         },
         text : hhreceptRS.getFieldByName('street')
      }));
      viewHerhaalReceptDetailsContent.add(Ti.UI.createLabel({
         top : '105',
         left : '10',
         color : donkerblauw,
         textAlign : Ti.UI.TEXTALIGNMENTLEFT,
         font : {
            fontSize : 12,
            fontWeight : 'bold',
            fontFamily : customFont
         },
         text : hhreceptRS.getFieldByName('postcode') + ' ' + hhreceptRS.getFieldByName('place')
      }));
      viewHerhaalReceptDetailsContent.add(Ti.UI.createLabel({
         top : '120',
         left : '10',
         color : donkerblauw,
         textAlign : Ti.UI.TEXTALIGNMENTLEFT,
         font : {
            fontSize : 12,
            fontWeight : 'bold',
            fontFamily : customFont
         },
         text : hhreceptRS.getFieldByName('phone')
      }));
      //Herhaalrecept
      viewHerhaalReceptDetailsContent.add(Ti.UI.createLabel({
         top : '150',
         left : '10',
         color : donkerblauw,
         textAlign : Ti.UI.TEXTALIGNMENTLEFT,
         font : {
            fontSize : 12,
            fontWeight : 'bold',
            fontFamily : customFont
         },
         text : 'Medicijn : ' + hhreceptRS.getFieldByName('medicine')
      }));
      viewHerhaalReceptDetailsContent.add(Ti.UI.createLabel({
         top : '165',
         left : '10',
         color : donkerblauw,
         textAlign : Ti.UI.TEXTALIGNMENTLEFT,
         font : {
            fontSize : 12,
            fontWeight : 'bold',
            fontFamily : customFont
         },
         text : 'Dosering : ' + hhreceptRS.getFieldByName('dose')
      }));
      viewHerhaalReceptDetailsContent.add(Ti.UI.createLabel({
         top : '180',
         left : '10',
         color : donkerblauw,
         textAlign : Ti.UI.TEXTALIGNMENTLEFT,
         font : {
            fontSize : 12,
            fontWeight : 'bold',
            fontFamily : customFont
         },
         text : 'Aantal : ' + hhreceptRS.getFieldByName('number')
      }));
      viewHerhaalReceptDetailsContent.add(Ti.UI.createLabel({
         top : '195',
         left : '10',
         color : donkerblauw,
         textAlign : Ti.UI.TEXTALIGNMENTLEFT,
         font : {
            fontSize : 12,
            fontWeight : 'bold',
            fontFamily : customFont
         },
         text : 'Gebruik : ' + hhreceptRS.getFieldByName('usage')
      }));
      viewHerhaalReceptDetailsContent.add(Ti.UI.createLabel({
         top : '210',
         left : '10',
         color : donkerblauw,
         textAlign : Ti.UI.TEXTALIGNMENTLEFT,
         font : {
            fontSize : 12,
            fontWeight : 'bold',
            fontFamily : customFont
         },
         text : 'Apotheek : ' + hhreceptRS.getFieldByName('pharmacy')
      }));
      viewHerhaalReceptDetailsContent.add(Ti.UI.createImageView({
         top : '230',
         //left: '10',
         image : hhreceptRS.getFieldByName('image')
      }));

      viewHerhaalReceptDetailsContent.add(viewLetterhead1, viewLetterhead2);
      scrollViewHerhaalReceptDetails.add(viewHerhaalReceptDetailsContent);
   }
   hhreceptRS.close();
   hhreceptendb.close();
}

function terugNaarHistorie() {
   scrollViewHerhaalReceptDetails.remove(viewHerhaalReceptDetailsContent);
   viewHerhaalReceptDetailsContent = null;
   //
   winHHRecept.remove(viewHerhaalReceptDetails);
   winHHRecept.add(viewHistorie);
   winHHRecept.leftNavButton = btnTerug;
   winHHRecept.rightNavButton = btnHistorieWissen;
   winHHRecept.setTitle('Herhaalrecepten');
}
